package thread;

public class syncDemo2 {
    public static void main(String[] args) {
        Shop shop=new Shop();
        Shop shop1=new Shop();
        Thread t1 =new Thread("wkj"){
            @Override
            public void run() {
                shop.buy();
                shop1.buy();
            }
        };
        Thread t2 =new Thread("fcq"){
            @Override
            public void run() {
                shop.buy();
                shop1.buy();
            }
        };
        t1.start();
        t2.start();
    }
}

class Shop{
    public void buy(){
        Thread t=Thread.currentThread();

        try {
            System.out.println(t.getName()+"正在挑衣服。。。。");
            Thread.sleep(5000);
//            synchronized ("hello") {有效但不合适
                synchronized (this) {
                //synchronized (new Object()) {无效ed封锁对象，因为多个线程看到的不是同一个对象
                System.out.println(t.getName() + "正在试衣服。。。。");
                Thread.sleep(5000);
            }

            System.out.println(t.getName()+"结账离开");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
